package com.frx.leetcode.base.arraytest;

import java.util.Arrays;

/**
 * @author ：frx
 * @date ：Created in 2019/7/24 22:32
 * @description： 删除数组中重复的元素，返回删除之后数组的长度
 *               输入 ： nums = [1,1,2], 输出 ： 2
 *               输入 ： nums = [0,0,1,1,1,2,2,3,3,4],  输出：5
 *               数组是排过序的，算法的空间复杂度要为 O(1)
 * @modified By：
 * @version: ToDO
 */
public class RemoveRepeat {

    public static void main(String[] args){
        int[] nums = {0,0,1,1,1,2,2,3,3,4};
        System.out.println(solution(nums));
        System.out.println((Arrays.toString(nums)));
    }

    /** 双指针解法*/
    public static int solution(int[] nums){
        int j = 0;
        for (int i = 1; i < nums.length;i++){
            if (nums[i] > nums[i-1]){
                j++;
                nums[j] = nums[i];
            }
        }

        return j+1;
    }
}
